package com.ccys.db.dto.doctor.completedOrEndCall;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @program: WhiteCoat
 * @description: 完成问诊接收
 * @author: ZhangJingCan
 * @create: 2024-03-04 13:08
 **/

@Data
public class CompleteBookingDto {

    private String presenting_complaint;//": "xcvbg",
    private List<Diagnosis> diagnosis;//":
    private String mamagement;//": "xscdfgh",
    private String instructions_to_patient;//": "cdgh",
    private Integer flag_patient_id;//": 2,
    private String flag_patient_note;//": "",
    private Integer specialist_id;//": 0,
    private String medical_type;//": "",
    private String medical_letter;//": "",
    @JsonFormat(pattern = "yyyy/MM/dd")
    @DateTimeFormat(pattern = "yyyy/MM/dd")
    private Date medical_certification_begin_date;//": "2023/08/22",
    @JsonFormat(pattern = "yyyy/MM/dd")
    @DateTimeFormat(pattern = "yyyy/MM/dd")
    private Date medical_certification_end_date;//": "2023/08/22",
    private String medical_certification_additional_note;//": "sdfghj",
    private List<Symptoms> symptoms;//":
    private List<Prescriptions> prescriptions;//":
    private String booking_id;//": "96207eb7-68ed-4f38-a202-521c186402bf",
    private Boolean Need_Letter;//": true,
    private Boolean Need_Certificate;//": true,
    private List<Medications> medications;//":
    private List<Allergies> allergies;//": [],
    private List<MedicationReactions> medication_reactions;//": null,
    private BigDecimal patient_weight;//": 83.0,
    private BigDecimal patient_height;//": 159.0,
    private BigDecimal patient_temp;//": 2.0,
    private BigDecimal patient_bp1;//": 2.0,
    private BigDecimal patient_bp2;//": 2.0,
    private BigDecimal patient_hr;//": 2.0,
    private String member_id;//": "bf29230e-26d7-4539-a2c4-7381e2ed28c2",
    private String consult_fee_id;//": null,
    private String consult_fee_text;//": "",
    private String follow_up_code;//": "",
    private List<Referrals> referrals;//":
    private String patient_summary;//": "watery sludge waa opiuytr",
    private Boolean diagnosis_allow_patient_to_claim;//": false,
    private String basic_cdmp_information;//": "",
    private Boolean is_cdmp_chronic;//": false
    private String country_remark;

    @Data
    public static class MedicationReactions {
        private String medication_reaction_id;
        private Integer index;
        private String name;
        private String otherreaction;
    }

    @Data
    public static class Allergies {
        private String allergy_id;
        private Integer index;
        private String name;
    }

    @Data
    public static class Diagnosis {
        private Integer ordering;//": 0,
        private String id;//": null,
        private String name;//": "A01.0 - Typhoid fever",
        private String code;//": null,
        private Boolean is_in_exclusion_list;//": false,
        private String trans_name;//": ""
    }

    @Data
    public static class Symptoms {
        private Integer ordering;//": 0,
        private String id;//": null,
        private String name;//": "fever, headache"
    }

    @Data
    public static class Prescriptions {
        private String id;//": "17b90490-1927-4ddb-8493-c5325642ccd6",
        private Integer dosage;//": 0,
        private String dosage_text;//": "DOSAGE",
        private BigDecimal quantity;//": 1.0,
        private Integer refill;//": 0,
        private String refill_expiry_date;//": "",
        private String patient_instruction;//": "patient_instruction",
        private String pharmacist_instruction;//": "pharmacist_instruction",
        private String frequency;//": "",
        private String what_is_for;//": "sfdgh",
        private String causes_drowsiness;//": "false",
        private String any_precautions;//": "Use as directed",
        private String duration;//": null,
        private Integer duration_unit;//": 1,
        private Integer uom_quantity;//": null,
        private Boolean prn;//": false,
        private String prn_reason;//": "",
        private String unit;//": null,
        private Boolean is_package;//": false,
        private String package_id;//": null,
        private String step_dose;//": "",
        private Boolean take_complete_course;//": false,
        private String remark;//": "kijhgf",
        private String product_id;//": null,
        private String product_name;//": null,
        private BigDecimal product_price;//": 0.0,
        private String index_order;//": null,
        private Boolean is_covered_diagnosis;//": false,
        private Boolean remind_patient_to_call_back;//": false
    }

    @Data
    public static class Medications {
        private String name;//": "Klacid (Clarithromycin) 250mg/5ml Susp 60ml",
        private String usage_period;//": "e2fb447a-e0eb-4612-a282-f01918b987ed",
        private String usage_period_id;//": "e2fb447a-e0eb-4612-a282-f01918b987ed",
        private String id;//": "2980181f-0fdc-4af4-90d7-3490f59e4c54",
        private String amount_of_dosage;//": "1"
    }

    @Data
    public static class Referrals {
        private String specialist_id;//": 404,
        private String MDST_ID;//": 3,
        private String specialist_company_name;//": "WhiteCoat",
        private String specialist_name;//": null,
        private String specialist_mobile;//": null,
        private String specialist_clinic_name;//": null,
        private String specialist_address;//": null,
        private Integer specialisation_type;//": null,
        private String referral_letter_text;//": "letterefrgthj",
        private String referral_letter_code;//": "-A"
    }

}
